#ifndef VIDEO_H
#define VIDEO_H

#define ZEROPAD 1
#define SIGN 2
#define PLUS 4
#define SPACE 8
#define LEFT 16
#define SPECIAL 32
#define SMALL 64


	#define AC_INDEX		0x3C0
	#define AC_WRITE		0x3C0
	#define AC_READ			0x3C1
	#define MISC_WRITE		0x3C2
	#define SEQ_INDEX		0x3C4
	#define SEQ_DATA		0x3C5
	#define DAC_READ_INDEX	0x3C7
	#define DAC_WRITE_INDEX	0x3C8
	#define DAC_DATA		0x3C9
	#define MISC_READ		0x3CC
	#define GC_INDEX		0x3CE
	#define GC_DATA			0x3CF
	#define CRTC_INDEX		0x3D4
	#define CRTC_DATA		0x3D5
	#define INSTAT_READ		0x3DA
	
	#define NUM_SEQ_REGS	5
	#define NUM_CRTC_REGS	25
	#define NUM_GC_REGS		9
	#define NUM_AC_REGS		21
	#define NUM_REGS		(1+NUM_SEQ_REGS+NUM_CRTC_REGS+NUM_GC_REGS+NUM_AC_REGS)
	
	#define VGAMEM 0xA0000
	#define SC_WIDTH 320
	#define SC_HEIGHT 200
	
struct vga_mode
{
	unsigned char misc;
	unsigned char seq[5];
	unsigned char crtc[25];
	unsigned char gc[9];
	unsigned char ac[21];
	unsigned char width;
	unsigned char height;
};

struct vga_m
{
	struct vga_mode *mode;
	unsigned int width;
	unsigned int height;
	unsigned char *font;
};

#endif /* end of include guard: VIDEO_H */
